import type { ExtSkuTpl, Tradable } from "~/extend";
import type { ExtIdTuple, INTEGER_PG } from "~/db.pg";

import type { ExtOwner } from "@/stream-user/core.define";
import { MarketOrder } from "@/river-market/schema.order";

/** 运营中心转出钻石
 * @refOwnerUUid32 超级管理员指定的代理商（如果是超级管理员自己，就说明没有代理商）
 * @count 钻石个数（不同分销渠道，会有不同的比例）
 * @price 人民币售价
 */
export type GemTpl = ExtOwner &
  ExtIdTuple &
  ExtSkuTpl & {
    /** 代理商分红金额，注意不能超过商品金额 */
    bonusAgent: INTEGER_PG;
    /** 创始人分红金额，注意不能超过商品金额 */
    bonusFounder: INTEGER_PG;
  };

/** 运营中心转出钻石
 * @refCreatorId 一定是客户自己
 * @refContactId 要把客户做成运营中心的联系人
 */
export type GemSku = GemTpl &
  Tradable & {
    refMarketOrderId: MarketOrder["uuid32"];
    justMarketOrder?: MarketOrder;
  };
